Three-phase alternating current (“AC”) motors with permanent magnet rotors (“PMAC motors”) are widely used in a range of industrial, commercial and consumer applications. Fields from magnets mounted on or embedded in the rotor couple with the PMAC motor's current-induced magnetic fields generated by electrical input to the stator. Simplicity, reliability, low cost and controllability using integrated circuit controllers and solid-state drivers contribute to the popularity of such motors.
PMAC motors are suitable for variable or constant-torque applications, where the controller dictate to the motor how much torque to produce at any given speed. This flexibility also makes PMAC motors suitable for variable-speed operation requiring ultra-high motor efficiency.
One method of control of PMAC motors is referred to as “field-oriented control” (“FOC”). FOC controllers use current-switching techniques to independently control motor flux and torque as further described below. PMAC motors rotate synchronously at the same speed as the magnetic fields produced by the stator windings. Thus, for example, if the stator fields are made to rotate at 1,700 rpm, the rotor also turns at 1,700 rpm.
FIG. 1 is a cross-sectional view of a PMAC motor 100. The PMAC motor 100 includes a stator 102 and a rotor 104. The stator 102 is fixed and the rotor 104 rotates relative to the stator 104. The stator 102 has a plurality of teeth 108 extending proximate the rotor 104. Each of the teeth 108 is wound by a conductor to form a coil or winding (e.g., the winding 110) that generates a magnetic field when current flows in the conductor. Windings of several adjacent teeth may be connected in series to form a single phase winding. A three-phase PMAC motor has three separately-phased windings. The rotor 104 has one or more permanent magnets attached to it. The net field orientation of the magnet(s) in the rotor 104 is indicated by north and south poles, N and S, respectively. The PMAC motor 100 operates by varying current in each of the phased windings. Doing so causes the teeth 108 to push or pull on the magnets in the rotor 104 and causes the rotor 104 to rotate. The speed and torque of the PMAC motor 100 are controlled by controlling the magnitude and phase of the current inputs to the three windings of the stator 102. Although examples herein are described with reference to a three-phase PMAC motor, it is noted that similar principles are equally applicable to PMAC motors having a number of phases greater than three.
The maximum torque of the PMAC motor 100 is generated when the angular position of a composite phase vector of the waveform of input current to the windings 110 is perpendicular to both the rotor longitudinal axis and to the angular position of the flux vector in the rotor 104. For permanent magnet motors such as the PMAC motor 100, the rotor flux vector indicates the angular position of the rotor 104. Accordingly, torque control is achieved in the PMAC motor 100 if the instantaneous position of the rotor 104 is known so that the phase(s) of the input current to the windings 110 of the stator 102 can be positioned accordingly.
FIG. 2 is a prior-art block diagram of an FOC-controlled PMAC motor circuit 200. The motor circuit 200 includes a PMAC motor 100, drive circuitry 202, current measurement circuits 205 and an FOC controller 207. Referring to FIG. 2 with reference back to FIG. 1, a feedback loop in the FOC controller 200 processes current levels sensed from the windings 110 of the stator 102. Current measurement circuits 205 measure levels of at least two of the three stator currents. At a sampling time, analog-to-digital converters (“ADCs”) 208 convert the measured stator current levels to a vector of discrete digital values representing stator current values I_A, I_B and I_C for further processing in the digital domain. The current values I_A, I_B and I_C are referenced to a three-dimensional coordinate system (A,B,C) that is fixed relative to the stator 102.
The stator current values I_A, I_B and I_C are transformed from the (A,B,C) coordinate system into equivalent stator current values I_α and I_β in a two-dimensional vector space (α, β) via a well-known Clarke matrix transform 208. For purposes of visualization as illustrated in FIG. 1, the stator current values I_α and I_β lie on mutually orthogonal coordinate axes CA_α 115 and CA_β 118. The (α,β) coordinate system is orthogonal to the longitudinal axis of the stator 102 and is also stationary relative to the stator 102. Axis CA_a 115 is shown aligned with one of the original three-phase axes CA_A. Axis CA_a 115 and the original three-phase axis CA_A can be thought of as extending along a zero degree radius of a circle formed by the stator.
A well-known Park transform generates a direct-axis stator current representation I_D 222 and a quadrature-axis stator current representation I_Q 224 from the current values I_α and I_β. I_D 222 and I_Q 224 are calculated by rotating the (α,β) coordinate system through an angle θ 135 and using the magnitudes of I_α and I_β values accordingly. θ 135 is the angle between a reference position of the stator 102 (e.g., relative to CA_α 115) and the instantaneous position of the rotor 104. Thus, currents I_D 222 and I_Q 224 represent stator current in a (D,Q) reference frame that is rotating with an angular velocity ω equal to that of the rotor 104 relative to the stator 102. Operation of the Park transform is analogous to an observer standing at a reference point on the periphery of a merry-go-round. The periphery is stationary relative to the ground is likened to the stator of a PMAC motor. The central, rotating portion of the merry-go-round is likened to the rotor. From one's position on the periphery, the observer can “see” the stator current vectors as stationary in both the (A, B, C) and the (α,β) coordinate systems. The observer sees the I_D 222 and I_Q 224 stator current vectors as rotating in the plane of the floor of the rotating central portion of the merry-go-round. Suddenly the observer jumps from the (α,β) coordinate system at the periphery to the (D,Q) coordinate system at the rotating central portion of the merry-go-round. The observer now sees the I_D 222 and I_Q 224 stator currents vectors as stationary under her feet.
Turning again to FIG. 2, it can be seen that θ 135 of FIG. 1 is an input to the Park transform. Park uses trigonometric functions that are a function of θ 135 to generate I_D 222 and IQ 224 from I_α and I_β. A rotor position sensor 225 senses the angular position of the rotor 104 during motor operation and provides the corresponding rotor flux angle θ 135 to the Park transform 215. A Hall effect or similar sensor may be used as the rotor position sensor 225. I_D 222 is an indication of the instantaneous flux of the rotor 104 with respect to the stator 102, as noted above. In contrast, I_Q 224 is an indication of the instantaneous torque currently being exerted by the stator 102 on the rotor 104. Knowing the current values of rotor flux and motor torque enable precise control of these parameters by electronically controlling the magnitude and frequency of the drive current waveforms into the tri-phasic windings of the stator 102 as follows.
I_D error amplifier 227 subtracts I_D 222 from a D-axis reference current input level I_D_REF 229 to generate an I_D error signal I_D_ERR. I_Q error amplifier 232 subtracts I_Q 224 from a Q-axis reference current input level I_Q_REF 234 to generate an I_Q error signal I_Q ERR. The I_D_ERR and I_Q ERR are processed in I_D and I_Q controllers 240 and 243 to generate control voltage signals V_D_CTL and V_Q_CTL, respectively. Controllers 240 and 243 may be proportional-integral controllers or proportional-integral-derivative controllers as are known in the art.
Inverse Park transform 248 transforms the control voltage signals V_Q_CTL and V_D_CTL from the rotating (D, Q) rotor reference frame to the stationary (α, β) stator reference frame using the measured rotor flux angle θ 135. Doing so generates control voltage signals V_α_CTL and V_β_CTL. A space vector generator 253 performs an inverse Clarke transform on V_α_CTL and V_βCTL in order to convert the control voltage signals to the three-phase (A, B, C) domain. The space vector generator 253 timing signals T_A, T_B and T_C, each proportional to a desired stator winding voltage. A PWM driver 258 uses T_A, T_B and T_C to generate three pulse-width modulation (“PWM”) pulse trains, one associated with each of the three stator windings A, B and C. A power driver module 262 provides gate drive current for each of the PWM pulse trains A, B and C to a three-phase inverter 268. The inverter 268 converts a direct current (“DC”) reference voltage to the corresponding PWM voltage pulse for each motor phase. The duration of each voltage pulse is proportional to a corresponding PWM pulse train duty cycle. Each voltage pulse is applied across a corresponding one of the three stator windings of the PMAC motor illustrated in FIG. 1
Although capable of precisely controlling the flux and torque of the PMAC motor 100, the FOC circuit of FIG. 2 depends upon a mechanical sensor (e.g., a Hall sensor or the like) to obtain the rotor flux angle θ. Such sensors are a potential point of failure and add to the cost of the PMAC motor 100.
FIG. 3 is a prior-art block diagram of an FOC-controlled PMAC motor circuit 300. The motor circuit 300 includes a PMAC motor 100, drive circuitry 202, current/voltage measurement circuits 305 and an FOC controller 307. The FOC controller 307 is similar to the FOC controller 207 previously described with reference to FIG. 2. That is, the FOC controller 307 includes the ADCs 208, the Clarke transform module 212, the Park transform module 215, the direct-axis and quadrature-axis error amplifiers 227 and 232, respectively, the direct-axis and quadrature-axis controllers 240 and 243, respectively, the inverse Park transform module 248, the space vector generator 253, and the PWM driver 258, all coupled together and capable of operating as previously described for the FOC controller 207 of FIG. 2.
However, the FOC controller 307 of the motor circuit 300 also includes a high speed estimator 315. The high speed estimator 315 receives samples of I_D and I_Q as well as samples of V_D and V_Q transforms of instantaneous stator winding voltages V_A, V_B and V_C. V_D and V_Q are generated by a second set of ADCs 308A, a second Clarke transform module 312 coupled to the second set of ADCs 308A, and a second Park transform module 316 coupled to the second Clarke transform module 312. The FOC controller further includes an ADC 308B coupled to the high speed estimator 315. The ADC 308B converts the measured direct current (“DC”) reference voltage into a discrete digital value representing the bus voltage V_BUS.
From these inputs, the high speed estimator 315 calculates variations in a back electromotive force (“back-EMF”) induced in the stator windings 110 of the PMAC motor 100 by the rotation of the permanent magnets associated with the rotor 104. The high speed estimator 315 then uses the back-EMF calculations to generate an estimated instantaneous rotor flux angle HS_θ_EST 318 and an estimated angular velocity HS_ω_EST 322 of the rotor 104 with respect to the stator 102. HS_θ_EST 318 is used by the Park and iPark transforms as previously described for θ 135 of FIGS. 1 and 2. HS_ω_EST 322 is input by a speed controller 330. The speed controller processes HS_ω_EST 322 and a requested motor speed input ω_REQ to generate the I_Q_REF signal 234 previously described with reference to FIG. 2.
The FOC-controlled PMAC motor circuit 300 and the associated high speed estimator-based FOC controller 307 are further described in related U.S. Patent Publication No. US 2015/0084575 A1, filed Jul. 22, 2014 and incorporated herein by reference in its entirety.
Accurate estimation of rotor position (e.g., HS_θ_EST 318) and angular velocity (e.g., HS_ω_EST 322) by the high speed estimator 315 presupposes a back-EMF signal of adequate magnitude and fidelity. Because the amplitude of back-EMF is proportional to rotor speed, a PMAC motor operating at low speed may not produce a back-EMF signal sufficient to be accurately processed by the high speed estimator 315. In the case of a motor at rest driven by an FOC controller that has just received a speed request, no back-EMF signal at all is available. These conditions may frequently occur in PMAC motor applications such as the case of an eBike with a PMAC motor integrated to assist with pedaled propulsion, or an electronically-agitated direct-drive washing machine which must agitate slowly and frequently reverse direction, for example.
FIG. 4 is a prior-art block diagram of an FOC-controlled PMAC motor circuit 400. The motor circuit 400 includes a PMAC motor 100, drive circuitry 202, current measurement circuits 205 and an FOC controller 407. The FOC controller 407 are similar to the FOC controller 307 previously described with reference to FIG. 3. That is, the FOC controller 407 includes the ADCs 208, 308A and 308B, the Clarke transform modules 212 and 312, the Park transform modules 215 and 316, the high speed estimator 315, the direct-axis and quadrature-axis error amplifiers 227 and 232, respectively, the direct-axis and quadrature-axis controllers 240 and 243, respectively, the inverse Park transform module 248, the space vector generator 253, and the PWM driver 258, all coupled together and capable of operating as previously described for the FOC controller 307 of FIG. 3.
In addition, the FOC controller 407 includes a low speed estimator 415 to generate an estimated instantaneous flux angle LS_θ_EST 418 of the rotor with respect to the stator. The low speed estimator 415 also generates an estimated angular velocity LS_ω_EST 422 of the rotor 104 with respect to the stator 102. The low speed estimator operates by injecting a high frequency excitation signal V_D_EXC 420 with the direct-axis control signal V_D_CTL at an injection point 425.
The technique, referred to as “high frequency injection” (“HFI”), depends upon the property of “saliency” associated with the windings 110 of the stator 102. Saliency is a dependency of the inductance of each of the windings 110 and the position of the poles of the permanent magnets associated with the rotor 104. V_D_EXC 420 is ineffective as a drive signal to generate torque on the rotor 104. However, V_D_EXC 420 generates small components of stator currents in the various windings from which to measure each winding's inductance. The estimator 415 generates LS_θ_EST 418 based upon differences in inductances in the various windings in the presence of V_D_EXC 420 as influenced by the position of the magnetic field associated with the permanent magnets of the rotor 104. The low speed estimator 415, also referred to as an initial position detector (“IPD”), is accurate at low or even zero rotor angular velocities. Additional information regarding the low speed estimator 415 may be found in related U.S. Pat. No. 9,270,220 B2, filed Apr. 4, 2014 and incorporated herein by reference in its entirety.